#ifndef VOTANTEABM_H_
#define VOTANTEABM_H_
#include "../Entidades/Distrito.h"
#include "../Entidades/Votante.h"
#include "../Manejadores/ManejadorDistrito.h"
#include "../Manejadores/ManejadorVotante.h"
#include "../Archivos/Log.h"
#include "../Interfaces/IAbm.h"
#include "../Accesorios/Parser.h"
#include "../Archivos/ArchivoAltasMasivas.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>

using namespace Archivos;
using namespace Manejadores;
using namespace Entidades;
using namespace std;
using namespace Accesorios;


namespace ABM{

class VotanteABM : public IAbm{

private:
// Manejador de la clase a la que pertenece el abm
	ManejadorVotante * manejadorVotante;
// Manejador/es de los identificadores externos
	ManejadorDistrito * manejadorDistrito;
	Votante* menuModificacion(Votante* votanteOriginal);
	bool altaInterna(string dni, string nombreYApellido, string domicilio, string distritoVotante, string contrasenia);

public:
	VotanteABM();
	
	int menu(); // definida por el padre
	void ABM(int opcion); // definida por el padre
	//hay q implementarlas para que deje de ser abstracta
	bool alta(); 
	bool baja();
	bool modificacion();
	void altaMasiva();
	bool listar();
	
	virtual ~VotanteABM();
	
	
};
}
#endif /*VOTANTEABM_H_*/
